import QtQuick 2.2
Rectangle{
	Component.onCompleted: {
		var str = new String("I\' a string");
		var res1 = str.match(/String/i);
		var res2 = str.search(new RegExp("String", "i"));
		var res3 = str.search(RegExp("String", "i"));
		console.log(res1);
		console.log(res2);
		console.log(res3);
		
		// 修饰符: 
		//  "i",匹配时，忽略大小写
		//  "g",查找所有匹配，即全局匹配
		//  "m",执行多行查找
		var numberSource = new String("2015-01-08, I got 100");
		var result = numberSource.match(/\d+/g);
		console.log(result);

		// 元字符
		// \d是元字符(digital)，表示查找数字， ‘+’是量词，表示重复一次或多次
		// \d+ 就是匹配一个或者多个字符
		// 常见的元字符：
		// "." 匹配除换行以外的任何字符
		// "\w" 匹配字母，数字，下划线或者汉字 (world)
		// "\s" 匹配任意的空白字符 (space)
		// "\S" 匹配非空白字符
		// "\d" 匹配数字
		// "\D" 匹配非数字
		// "\b" 匹配单词的开始或者结束
		// "^" 字符串的开始
		// "$" 字符串的结束
		var strs = "We are dogs;\n Your dogs;\nWe want meat, please.\n Please";
		var lines = strs.match(/^We.*/mg);
		console.log(lines.length);
		console.log(lines);

		// 重复
		// "*" 重复零次或者更多次
		// "+" 重复一次或者更多次
		// "?" 重复0次或者一次
		// "{n}" 重复n次
		// "{n,}" 重复n次或者更多次
		// "{n,m}" 重复n到m次
		// "/029-?\d{8}/mg"

		// 字符集合
		// [0-9]与\d一样， [a-zA-Z]表示26个英文字符
		// "/[（(]?029-?[）)]\d[8]/mg"
		
		// 转义字符
		// \*, \., \+, \?,\^,\$
		// \r, \t, \n
	}
}
